#ifndef WINDOW_H
#define WINDOW_H

#include <QWidget>
#include "clock.h"
#include "display.h"
#include "logicanalyzer.h"
#include "widget.h"
#include "kbmouse.h"
#include "p8x32a.h"
#include "runner.h"
#include "p8x32adebugger.h"

class Window : public QWidget
{
    Q_OBJECT
public:
    explicit Window();

signals:

public slots:
    void clearBreakpoints();
    void showBreakpoints();
    void newBreak(bool enable);
    void cont();
    void debug();
    void delay();
    void load(QByteArray b);
    void reset();
    void start();
    void stop();
    void step();
    void showTrace(bool visible);

private:

    QTimer *displayTimer;
    Widget *display;
    Display spiral;
    LogicAnalyzer analyzer;
    Clock   clock;

    KbMouse kbmouse;
    P8x32a micro;
    Runner run;
    P8x32aDebugger debugger;

    QByteArray mByteArray;

    bool running;
};

#endif // WINDOW_H
